/**
 * 系统配置模块
 */
#ifndef _SYSCONFIG_H_
#define _SYSCONFIG_H_
#include <string>
class SysConfig
{
public:
    static SysConfig *getInst();

    static void releaseInst(SysConfig *inst);

    /**
     * 初始化配置模块
     */
    bool init(const std::string &cfgFilePath);

    /**
     * 释放配置模块
     */
    void unInit();

    /**
     * 获取服务器绑定IP
     */
    std::string getBindIp();

    /**
     * 获取服务器端口 
     */
    int getServerPort();

    /**
     *  获取日志记录文件夹
     */
    std::string getLogDir();

    /**
     * 获取服务器最大支持的设备数量 
     */
    int getMaxDevCnt();

    /**
     * 获取鉴权密码 
     */
    std::string getAuthPasswd();

    // 获取异步超时时间
    int getAsyncTimeOutMs();

private:
    SysConfig();
    ~SysConfig();

private:
    static SysConfig *s_onlyOneInst;
};
#endif